package com.kaifamiao.queue;

import java.util.LinkedList;
import java.util.Queue;

/**
 * 1、队列特点: 先进先出( First In First Out , FIFO )
 * 2、java.util.Queue 接口表示队列(单端队列)
 * 3、操作队列的方法: offer(E) 、peek() 、poll()
 */
public class QueueTest1 {

	public static void main(String[] args) {
		
		Queue<String> q = new LinkedList<>();
		
		q.offer( "汉文帝" ); // 在队列尾部添加新元素
		q.offer( "汉景帝" );
		q.offer( "汉武帝" );
		
		System.out.println( q.toString() );
		String head = q.peek(); // 获得队列头部元素(但不删除)
		System.out.println( head );
		System.out.println( q.toString() );
		
		head = q.poll(); // 获取并移除队列头部元素
		System.out.println( head );
		System.out.println( q.toString() );
		
		head = q.poll(); // 获取并移除队列头部元素
		System.out.println( head );
		System.out.println( q.toString() );
		
		head = q.poll(); // 获取并移除队列头部元素
		System.out.println( head );
		System.out.println( q.toString() );
		
		System.out.println( q.peek() ); // 若队列为空则返回null不抛出异常
		System.out.println( q.poll() ); // 若队列为空则返回null不抛出异常

	}

}
